(0) Obligation:

Clauses:

intlist([], []).
intlist(.(X, XS), .(s(X), YS)) :- intlist(XS, YS).
int(0, 0, .(0, [])).
int(0, s(Y), .(0, XS)) :- int(s(0), s(Y), XS).
int(s(X), 0, []).
int(s(X), s(Y), XS) :- ','(int(X, Y, ZS), intlist(ZS, XS)).

Query: int(g,g,a)

(1) PrologToDTProblemTransformerProof (SOUND transformation)

Built DT problem from termination graph DT10.

(2) Obligation:

Triples:

intlistB(.(X1, X2), .(s(X1), X3)) :- intlistB(X2, X3).
intlistD(.(X1, X2), .(s(X1), X3)) :- intlistD(X2, X3).
intA(0, s(X1), .(0, X2)) :- intA(0, X1, X3).
intA(0, s(X1), .(0, X2)) :- ','(intcA(0, X1, X3), intlistB(X3, X2)).
intA(s(0), s(0), .(s(0), X1)) :- intlistC(X1).
intA(s(0), s(s(X1)), X2) :- intA(s(0), s(X1), X3).
intA(s(0), s(s(X1)), X2) :- ','(intcA(s(0), s(X1), X3), intlistB(.(0, X3), X2)).
intA(s(s(X1)), s(0), X2) :- intlistC(X2).
intA(s(s(X1)), s(s(X2)), X3) :- intA(X1, X2, X4).
intA(s(s(X1)), s(s(X2)), X3) :- ','(intcA(X1, X2, X4), intlistD(X4, X5)).
intA(s(s(X1)), s(s(X2)), X3) :- ','(intcA(X1, X2, X4), ','(intlistcD(X4, X5), intlistB(X5, X3))).

Clauses:

intcA(0, 0, .(0, [])).
intcA(0, s(X1), .(0, X2)) :- ','(intcA(0, X1, X3), intlistcB(X3, X2)).
intcA(s(X1), 0, []).
intcA(s(0), s(0), .(s(0), X1)) :- intlistcC(X1).
intcA(s(0), s(s(X1)), X2) :- ','(intcA(s(0), s(X1), X3), intlistcB(.(0, X3), X2)).
intcA(s(s(X1)), s(0), X2) :- intlistcC(X2).
intcA(s(s(X1)), s(s(X2)), X3) :- ','(intcA(X1, X2, X4), ','(intlistcD(X4, X5), intlistcB(X5, X3))).
intlistcB([], []).
intlistcB(.(X1, X2), .(s(X1), X3)) :- intlistcB(X2, X3).
intlistcC([]).
intlistcD([], []).
intlistcD(.(X1, X2), .(s(X1), X3)) :- intlistcD(X2, X3).

Afs:

intA(x1, x2, x3)  =  intA(x1, x2)

(3) UndefinedPredicateInTriplesTransformerProof (SOUND transformation)

Deleted triples and predicates having undefined goals [DT09].

(4) Obligation:

Triples:

intlistB(.(X1, X2), .(s(X1), X3)) :- intlistB(X2, X3).
intlistD(.(X1, X2), .(s(X1), X3)) :- intlistD(X2, X3).
intA(0, s(X1), .(0, X2)) :- intA(0, X1, X3).
intA(0, s(X1), .(0, X2)) :- ','(intcA(0, X1, X3), intlistB(X3, X2)).
intA(s(0), s(s(X1)), X2) :- intA(s(0), s(X1), X3).
intA(s(0), s(s(X1)), X2) :- ','(intcA(s(0), s(X1), X3), intlistB(.(0, X3), X2)).
intA(s(s(X1)), s(s(X2)), X3) :- intA(X1, X2, X4).
intA(s(s(X1)), s(s(X2)), X3) :- ','(intcA(X1, X2, X4), intlistD(X4, X5)).
intA(s(s(X1)), s(s(X2)), X3) :- ','(intcA(X1, X2, X4), ','(intlistcD(X4, X5), intlistB(X5, X3))).

Clauses:

intcA(0, 0, .(0, [])).
intcA(0, s(X1), .(0, X2)) :- ','(intcA(0, X1, X3), intlistcB(X3, X2)).
intcA(s(X1), 0, []).
intcA(s(0), s(0), .(s(0), X1)) :- intlistcC(X1).
intcA(s(0), s(s(X1)), X2) :- ','(intcA(s(0), s(X1), X3), intlistcB(.(0, X3), X2)).
intcA(s(s(X1)), s(0), X2) :- intlistcC(X2).
intcA(s(s(X1)), s(s(X2)), X3) :- ','(intcA(X1, X2, X4), ','(intlistcD(X4, X5), intlistcB(X5, X3))).
intlistcB([], []).
intlistcB(.(X1, X2), .(s(X1), X3)) :- intlistcB(X2, X3).
intlistcC([]).
intlistcD([], []).
intlistcD(.(X1, X2), .(s(X1), X3)) :- intlistcD(X2, X3).

Afs:

intA(x1, x2, x3)  =  intA(x1, x2)

(5) TriplesToPiDPProof (SOUND transformation)

We use the technique of [DT09]. With regard to the inferred argument filtering the predicates were used in the following modes:
intA_in: (b,b,f)
intcA_in: (b,b,f)
intlistcD_in: (b,f)
intlistcB_in: (b,f)
intlistB_in: (b,f)
intlistD_in: (b,f)
Transforming TRIPLES into the following Term Rewriting System:
Pi DP problem:
The TRS P consists of the following rules:

INTA_IN_GGA(0, s(X1), .(0, X2)) → U3_GGA(X1, X2, intA_in_gga(0, X1, X3))
INTA_IN_GGA(0, s(X1), .(0, X2)) → INTA_IN_GGA(0, X1, X3)
INTA_IN_GGA(0, s(X1), .(0, X2)) → U4_GGA(X1, X2, intcA_in_gga(0, X1, X3))
U4_GGA(X1, X2, intcA_out_gga(0, X1, X3)) → U5_GGA(X1, X2, intlistB_in_ga(X3, X2))
U4_GGA(X1, X2, intcA_out_gga(0, X1, X3)) → INTLISTB_IN_GA(X3, X2)
INTLISTB_IN_GA(.(X1, X2), .(s(X1), X3)) → U1_GA(X1, X2, X3, intlistB_in_ga(X2, X3))
INTLISTB_IN_GA(.(X1, X2), .(s(X1), X3)) → INTLISTB_IN_GA(X2, X3)
INTA_IN_GGA(s(0), s(s(X1)), X2) → U6_GGA(X1, X2, intA_in_gga(s(0), s(X1), X3))
INTA_IN_GGA(s(0), s(s(X1)), X2) → INTA_IN_GGA(s(0), s(X1), X3)
INTA_IN_GGA(s(0), s(s(X1)), X2) → U7_GGA(X1, X2, intcA_in_gga(s(0), s(X1), X3))
U7_GGA(X1, X2, intcA_out_gga(s(0), s(X1), X3)) → U8_GGA(X1, X2, intlistB_in_ga(.(0, X3), X2))
U7_GGA(X1, X2, intcA_out_gga(s(0), s(X1), X3)) → INTLISTB_IN_GA(.(0, X3), X2)
INTA_IN_GGA(s(s(X1)), s(s(X2)), X3) → U9_GGA(X1, X2, X3, intA_in_gga(X1, X2, X4))
INTA_IN_GGA(s(s(X1)), s(s(X2)), X3) → INTA_IN_GGA(X1, X2, X4)
INTA_IN_GGA(s(s(X1)), s(s(X2)), X3) → U10_GGA(X1, X2, X3, intcA_in_gga(X1, X2, X4))
U10_GGA(X1, X2, X3, intcA_out_gga(X1, X2, X4)) → U11_GGA(X1, X2, X3, intlistD_in_ga(X4, X5))
U10_GGA(X1, X2, X3, intcA_out_gga(X1, X2, X4)) → INTLISTD_IN_GA(X4, X5)
INTLISTD_IN_GA(.(X1, X2), .(s(X1), X3)) → U2_GA(X1, X2, X3, intlistD_in_ga(X2, X3))
INTLISTD_IN_GA(.(X1, X2), .(s(X1), X3)) → INTLISTD_IN_GA(X2, X3)
U10_GGA(X1, X2, X3, intcA_out_gga(X1, X2, X4)) → U12_GGA(X1, X2, X3, intlistcD_in_ga(X4, X5))
U12_GGA(X1, X2, X3, intlistcD_out_ga(X4, X5)) → U13_GGA(X1, X2, X3, intlistB_in_ga(X5, X3))
U12_GGA(X1, X2, X3, intlistcD_out_ga(X4, X5)) → INTLISTB_IN_GA(X5, X3)

The TRS R consists of the following rules:

intcA_in_gga(0, 0, .(0, [])) → intcA_out_gga(0, 0, .(0, []))
intcA_in_gga(0, s(X1), .(0, X2)) → U15_gga(X1, X2, intcA_in_gga(0, X1, X3))
intcA_in_gga(s(X1), 0, []) → intcA_out_gga(s(X1), 0, [])
intcA_in_gga(s(0), s(0), .(s(0), X1)) → U17_gga(X1, intlistcC_in_a(X1))
intlistcC_in_a([]) → intlistcC_out_a([])
U17_gga(X1, intlistcC_out_a(X1)) → intcA_out_gga(s(0), s(0), .(s(0), X1))
intcA_in_gga(s(0), s(s(X1)), X2) → U18_gga(X1, X2, intcA_in_gga(s(0), s(X1), X3))
intcA_in_gga(s(s(X1)), s(0), X2) → U20_gga(X1, X2, intlistcC_in_a(X2))
U20_gga(X1, X2, intlistcC_out_a(X2)) → intcA_out_gga(s(s(X1)), s(0), X2)
intcA_in_gga(s(s(X1)), s(s(X2)), X3) → U21_gga(X1, X2, X3, intcA_in_gga(X1, X2, X4))
U21_gga(X1, X2, X3, intcA_out_gga(X1, X2, X4)) → U22_gga(X1, X2, X3, intlistcD_in_ga(X4, X5))
intlistcD_in_ga([], []) → intlistcD_out_ga([], [])
intlistcD_in_ga(.(X1, X2), .(s(X1), X3)) → U25_ga(X1, X2, X3, intlistcD_in_ga(X2, X3))
U25_ga(X1, X2, X3, intlistcD_out_ga(X2, X3)) → intlistcD_out_ga(.(X1, X2), .(s(X1), X3))
U22_gga(X1, X2, X3, intlistcD_out_ga(X4, X5)) → U23_gga(X1, X2, X3, intlistcB_in_ga(X5, X3))
intlistcB_in_ga([], []) → intlistcB_out_ga([], [])
intlistcB_in_ga(.(X1, X2), .(s(X1), X3)) → U24_ga(X1, X2, X3, intlistcB_in_ga(X2, X3))
U24_ga(X1, X2, X3, intlistcB_out_ga(X2, X3)) → intlistcB_out_ga(.(X1, X2), .(s(X1), X3))
U23_gga(X1, X2, X3, intlistcB_out_ga(X5, X3)) → intcA_out_gga(s(s(X1)), s(s(X2)), X3)
U18_gga(X1, X2, intcA_out_gga(s(0), s(X1), X3)) → U19_gga(X1, X2, intlistcB_in_ga(.(0, X3), X2))
U19_gga(X1, X2, intlistcB_out_ga(.(0, X3), X2)) → intcA_out_gga(s(0), s(s(X1)), X2)
U15_gga(X1, X2, intcA_out_gga(0, X1, X3)) → U16_gga(X1, X2, intlistcB_in_ga(X3, X2))
U16_gga(X1, X2, intlistcB_out_ga(X3, X2)) → intcA_out_gga(0, s(X1), .(0, X2))

The argument filtering Pi contains the following mapping:
intA_in_gga(x1, x2, x3)  =  intA_in_gga(x1, x2)
0  =  0
s(x1)  =  s(x1)
intcA_in_gga(x1, x2, x3)  =  intcA_in_gga(x1, x2)
intcA_out_gga(x1, x2, x3)  =  intcA_out_gga(x1, x2, x3)
U15_gga(x1, x2, x3)  =  U15_gga(x1, x3)
U17_gga(x1, x2)  =  U17_gga(x2)
intlistcC_in_a(x1)  =  intlistcC_in_a
intlistcC_out_a(x1)  =  intlistcC_out_a(x1)
U18_gga(x1, x2, x3)  =  U18_gga(x1, x3)
U20_gga(x1, x2, x3)  =  U20_gga(x1, x3)
U21_gga(x1, x2, x3, x4)  =  U21_gga(x1, x2, x4)
U22_gga(x1, x2, x3, x4)  =  U22_gga(x1, x2, x4)
intlistcD_in_ga(x1, x2)  =  intlistcD_in_ga(x1)
[]  =  []
intlistcD_out_ga(x1, x2)  =  intlistcD_out_ga(x1, x2)
.(x1, x2)  =  .(x1, x2)
U25_ga(x1, x2, x3, x4)  =  U25_ga(x1, x2, x4)
U23_gga(x1, x2, x3, x4)  =  U23_gga(x1, x2, x4)
intlistcB_in_ga(x1, x2)  =  intlistcB_in_ga(x1)
intlistcB_out_ga(x1, x2)  =  intlistcB_out_ga(x1, x2)
U24_ga(x1, x2, x3, x4)  =  U24_ga(x1, x2, x4)
U19_gga(x1, x2, x3)  =  U19_gga(x1, x3)
U16_gga(x1, x2, x3)  =  U16_gga(x1, x3)
intlistB_in_ga(x1, x2)  =  intlistB_in_ga(x1)
intlistD_in_ga(x1, x2)  =  intlistD_in_ga(x1)
INTA_IN_GGA(x1, x2, x3)  =  INTA_IN_GGA(x1, x2)
U3_GGA(x1, x2, x3)  =  U3_GGA(x1, x3)
U4_GGA(x1, x2, x3)  =  U4_GGA(x1, x3)
U5_GGA(x1, x2, x3)  =  U5_GGA(x1, x3)
INTLISTB_IN_GA(x1, x2)  =  INTLISTB_IN_GA(x1)
U1_GA(x1, x2, x3, x4)  =  U1_GA(x1, x2, x4)
U6_GGA(x1, x2, x3)  =  U6_GGA(x1, x3)
U7_GGA(x1, x2, x3)  =  U7_GGA(x1, x3)
U8_GGA(x1, x2, x3)  =  U8_GGA(x1, x3)
U9_GGA(x1, x2, x3, x4)  =  U9_GGA(x1, x2, x4)
U10_GGA(x1, x2, x3, x4)  =  U10_GGA(x1, x2, x4)
U11_GGA(x1, x2, x3, x4)  =  U11_GGA(x1, x2, x4)
INTLISTD_IN_GA(x1, x2)  =  INTLISTD_IN_GA(x1)
U2_GA(x1, x2, x3, x4)  =  U2_GA(x1, x2, x4)
U12_GGA(x1, x2, x3, x4)  =  U12_GGA(x1, x2, x4)
U13_GGA(x1, x2, x3, x4)  =  U13_GGA(x1, x2, x4)

We have to consider all (P,R,Pi)-chains

Infinitary Constructor Rewriting Termination of PiDP implies Termination of TRIPLES

(6) Obligation:

Pi DP problem:
The TRS P consists of the following rules:

INTA_IN_GGA(0, s(X1), .(0, X2)) → U3_GGA(X1, X2, intA_in_gga(0, X1, X3))
INTA_IN_GGA(0, s(X1), .(0, X2)) → INTA_IN_GGA(0, X1, X3)
INTA_IN_GGA(0, s(X1), .(0, X2)) → U4_GGA(X1, X2, intcA_in_gga(0, X1, X3))
U4_GGA(X1, X2, intcA_out_gga(0, X1, X3)) → U5_GGA(X1, X2, intlistB_in_ga(X3, X2))
U4_GGA(X1, X2, intcA_out_gga(0, X1, X3)) → INTLISTB_IN_GA(X3, X2)
INTLISTB_IN_GA(.(X1, X2), .(s(X1), X3)) → U1_GA(X1, X2, X3, intlistB_in_ga(X2, X3))
INTLISTB_IN_GA(.(X1, X2), .(s(X1), X3)) → INTLISTB_IN_GA(X2, X3)
INTA_IN_GGA(s(0), s(s(X1)), X2) → U6_GGA(X1, X2, intA_in_gga(s(0), s(X1), X3))
INTA_IN_GGA(s(0), s(s(X1)), X2) → INTA_IN_GGA(s(0), s(X1), X3)
INTA_IN_GGA(s(0), s(s(X1)), X2) → U7_GGA(X1, X2, intcA_in_gga(s(0), s(X1), X3))
U7_GGA(X1, X2, intcA_out_gga(s(0), s(X1), X3)) → U8_GGA(X1, X2, intlistB_in_ga(.(0, X3), X2))
U7_GGA(X1, X2, intcA_out_gga(s(0), s(X1), X3)) → INTLISTB_IN_GA(.(0, X3), X2)
INTA_IN_GGA(s(s(X1)), s(s(X2)), X3) → U9_GGA(X1, X2, X3, intA_in_gga(X1, X2, X4))
INTA_IN_GGA(s(s(X1)), s(s(X2)), X3) → INTA_IN_GGA(X1, X2, X4)
INTA_IN_GGA(s(s(X1)), s(s(X2)), X3) → U10_GGA(X1, X2, X3, intcA_in_gga(X1, X2, X4))
U10_GGA(X1, X2, X3, intcA_out_gga(X1, X2, X4)) → U11_GGA(X1, X2, X3, intlistD_in_ga(X4, X5))
U10_GGA(X1, X2, X3, intcA_out_gga(X1, X2, X4)) → INTLISTD_IN_GA(X4, X5)
INTLISTD_IN_GA(.(X1, X2), .(s(X1), X3)) → U2_GA(X1, X2, X3, intlistD_in_ga(X2, X3))
INTLISTD_IN_GA(.(X1, X2), .(s(X1), X3)) → INTLISTD_IN_GA(X2, X3)
U10_GGA(X1, X2, X3, intcA_out_gga(X1, X2, X4)) → U12_GGA(X1, X2, X3, intlistcD_in_ga(X4, X5))
U12_GGA(X1, X2, X3, intlistcD_out_ga(X4, X5)) → U13_GGA(X1, X2, X3, intlistB_in_ga(X5, X3))
U12_GGA(X1, X2, X3, intlistcD_out_ga(X4, X5)) → INTLISTB_IN_GA(X5, X3)

The TRS R consists of the following rules:

intcA_in_gga(0, 0, .(0, [])) → intcA_out_gga(0, 0, .(0, []))
intcA_in_gga(0, s(X1), .(0, X2)) → U15_gga(X1, X2, intcA_in_gga(0, X1, X3))
intcA_in_gga(s(X1), 0, []) → intcA_out_gga(s(X1), 0, [])
intcA_in_gga(s(0), s(0), .(s(0), X1)) → U17_gga(X1, intlistcC_in_a(X1))
intlistcC_in_a([]) → intlistcC_out_a([])
U17_gga(X1, intlistcC_out_a(X1)) → intcA_out_gga(s(0), s(0), .(s(0), X1))
intcA_in_gga(s(0), s(s(X1)), X2) → U18_gga(X1, X2, intcA_in_gga(s(0), s(X1), X3))
intcA_in_gga(s(s(X1)), s(0), X2) → U20_gga(X1, X2, intlistcC_in_a(X2))
U20_gga(X1, X2, intlistcC_out_a(X2)) → intcA_out_gga(s(s(X1)), s(0), X2)
intcA_in_gga(s(s(X1)), s(s(X2)), X3) → U21_gga(X1, X2, X3, intcA_in_gga(X1, X2, X4))
U21_gga(X1, X2, X3, intcA_out_gga(X1, X2, X4)) → U22_gga(X1, X2, X3, intlistcD_in_ga(X4, X5))
intlistcD_in_ga([], []) → intlistcD_out_ga([], [])
intlistcD_in_ga(.(X1, X2), .(s(X1), X3)) → U25_ga(X1, X2, X3, intlistcD_in_ga(X2, X3))
U25_ga(X1, X2, X3, intlistcD_out_ga(X2, X3)) → intlistcD_out_ga(.(X1, X2), .(s(X1), X3))
U22_gga(X1, X2, X3, intlistcD_out_ga(X4, X5)) → U23_gga(X1, X2, X3, intlistcB_in_ga(X5, X3))
intlistcB_in_ga([], []) → intlistcB_out_ga([], [])
intlistcB_in_ga(.(X1, X2), .(s(X1), X3)) → U24_ga(X1, X2, X3, intlistcB_in_ga(X2, X3))
U24_ga(X1, X2, X3, intlistcB_out_ga(X2, X3)) → intlistcB_out_ga(.(X1, X2), .(s(X1), X3))
U23_gga(X1, X2, X3, intlistcB_out_ga(X5, X3)) → intcA_out_gga(s(s(X1)), s(s(X2)), X3)
U18_gga(X1, X2, intcA_out_gga(s(0), s(X1), X3)) → U19_gga(X1, X2, intlistcB_in_ga(.(0, X3), X2))
U19_gga(X1, X2, intlistcB_out_ga(.(0, X3), X2)) → intcA_out_gga(s(0), s(s(X1)), X2)
U15_gga(X1, X2, intcA_out_gga(0, X1, X3)) → U16_gga(X1, X2, intlistcB_in_ga(X3, X2))
U16_gga(X1, X2, intlistcB_out_ga(X3, X2)) → intcA_out_gga(0, s(X1), .(0, X2))

The argument filtering Pi contains the following mapping:
intA_in_gga(x1, x2, x3)  =  intA_in_gga(x1, x2)
0  =  0
s(x1)  =  s(x1)
intcA_in_gga(x1, x2, x3)  =  intcA_in_gga(x1, x2)
intcA_out_gga(x1, x2, x3)  =  intcA_out_gga(x1, x2, x3)
U15_gga(x1, x2, x3)  =  U15_gga(x1, x3)
U17_gga(x1, x2)  =  U17_gga(x2)
intlistcC_in_a(x1)  =  intlistcC_in_a
intlistcC_out_a(x1)  =  intlistcC_out_a(x1)
U18_gga(x1, x2, x3)  =  U18_gga(x1, x3)
U20_gga(x1, x2, x3)  =  U20_gga(x1, x3)
U21_gga(x1, x2, x3, x4)  =  U21_gga(x1, x2, x4)
U22_gga(x1, x2, x3, x4)  =  U22_gga(x1, x2, x4)
intlistcD_in_ga(x1, x2)  =  intlistcD_in_ga(x1)
[]  =  []
intlistcD_out_ga(x1, x2)  =  intlistcD_out_ga(x1, x2)
.(x1, x2)  =  .(x1, x2)
U25_ga(x1, x2, x3, x4)  =  U25_ga(x1, x2, x4)
U23_gga(x1, x2, x3, x4)  =  U23_gga(x1, x2, x4)
intlistcB_in_ga(x1, x2)  =  intlistcB_in_ga(x1)
intlistcB_out_ga(x1, x2)  =  intlistcB_out_ga(x1, x2)
U24_ga(x1, x2, x3, x4)  =  U24_ga(x1, x2, x4)
U19_gga(x1, x2, x3)  =  U19_gga(x1, x3)
U16_gga(x1, x2, x3)  =  U16_gga(x1, x3)
intlistB_in_ga(x1, x2)  =  intlistB_in_ga(x1)
intlistD_in_ga(x1, x2)  =  intlistD_in_ga(x1)
INTA_IN_GGA(x1, x2, x3)  =  INTA_IN_GGA(x1, x2)
U3_GGA(x1, x2, x3)  =  U3_GGA(x1, x3)
U4_GGA(x1, x2, x3)  =  U4_GGA(x1, x3)
U5_GGA(x1, x2, x3)  =  U5_GGA(x1, x3)
INTLISTB_IN_GA(x1, x2)  =  INTLISTB_IN_GA(x1)
U1_GA(x1, x2, x3, x4)  =  U1_GA(x1, x2, x4)
U6_GGA(x1, x2, x3)  =  U6_GGA(x1, x3)
U7_GGA(x1, x2, x3)  =  U7_GGA(x1, x3)
U8_GGA(x1, x2, x3)  =  U8_GGA(x1, x3)
U9_GGA(x1, x2, x3, x4)  =  U9_GGA(x1, x2, x4)
U10_GGA(x1, x2, x3, x4)  =  U10_GGA(x1, x2, x4)
U11_GGA(x1, x2, x3, x4)  =  U11_GGA(x1, x2, x4)
INTLISTD_IN_GA(x1, x2)  =  INTLISTD_IN_GA(x1)
U2_GA(x1, x2, x3, x4)  =  U2_GA(x1, x2, x4)
U12_GGA(x1, x2, x3, x4)  =  U12_GGA(x1, x2, x4)
U13_GGA(x1, x2, x3, x4)  =  U13_GGA(x1, x2, x4)

We have to consider all (P,R,Pi)-chains

(7) DependencyGraphProof (EQUIVALENT transformation)

The approximation of the Dependency Graph [LOPSTR] contains 5 SCCs with 17 less nodes.

(8) Complex Obligation (AND)

(9) Obligation:

Pi DP problem:
The TRS P consists of the following rules:

INTLISTD_IN_GA(.(X1, X2), .(s(X1), X3)) → INTLISTD_IN_GA(X2, X3)

The TRS R consists of the following rules:

intcA_in_gga(0, 0, .(0, [])) → intcA_out_gga(0, 0, .(0, []))
intcA_in_gga(0, s(X1), .(0, X2)) → U15_gga(X1, X2, intcA_in_gga(0, X1, X3))
intcA_in_gga(s(X1), 0, []) → intcA_out_gga(s(X1), 0, [])
intcA_in_gga(s(0), s(0), .(s(0), X1)) → U17_gga(X1, intlistcC_in_a(X1))
intlistcC_in_a([]) → intlistcC_out_a([])
U17_gga(X1, intlistcC_out_a(X1)) → intcA_out_gga(s(0), s(0), .(s(0), X1))
intcA_in_gga(s(0), s(s(X1)), X2) → U18_gga(X1, X2, intcA_in_gga(s(0), s(X1), X3))
intcA_in_gga(s(s(X1)), s(0), X2) → U20_gga(X1, X2, intlistcC_in_a(X2))
U20_gga(X1, X2, intlistcC_out_a(X2)) → intcA_out_gga(s(s(X1)), s(0), X2)
intcA_in_gga(s(s(X1)), s(s(X2)), X3) → U21_gga(X1, X2, X3, intcA_in_gga(X1, X2, X4))
U21_gga(X1, X2, X3, intcA_out_gga(X1, X2, X4)) → U22_gga(X1, X2, X3, intlistcD_in_ga(X4, X5))
intlistcD_in_ga([], []) → intlistcD_out_ga([], [])
intlistcD_in_ga(.(X1, X2), .(s(X1), X3)) → U25_ga(X1, X2, X3, intlistcD_in_ga(X2, X3))
U25_ga(X1, X2, X3, intlistcD_out_ga(X2, X3)) → intlistcD_out_ga(.(X1, X2), .(s(X1), X3))
U22_gga(X1, X2, X3, intlistcD_out_ga(X4, X5)) → U23_gga(X1, X2, X3, intlistcB_in_ga(X5, X3))
intlistcB_in_ga([], []) → intlistcB_out_ga([], [])
intlistcB_in_ga(.(X1, X2), .(s(X1), X3)) → U24_ga(X1, X2, X3, intlistcB_in_ga(X2, X3))
U24_ga(X1, X2, X3, intlistcB_out_ga(X2, X3)) → intlistcB_out_ga(.(X1, X2), .(s(X1), X3))
U23_gga(X1, X2, X3, intlistcB_out_ga(X5, X3)) → intcA_out_gga(s(s(X1)), s(s(X2)), X3)
U18_gga(X1, X2, intcA_out_gga(s(0), s(X1), X3)) → U19_gga(X1, X2, intlistcB_in_ga(.(0, X3), X2))
U19_gga(X1, X2, intlistcB_out_ga(.(0, X3), X2)) → intcA_out_gga(s(0), s(s(X1)), X2)
U15_gga(X1, X2, intcA_out_gga(0, X1, X3)) → U16_gga(X1, X2, intlistcB_in_ga(X3, X2))
U16_gga(X1, X2, intlistcB_out_ga(X3, X2)) → intcA_out_gga(0, s(X1), .(0, X2))

The argument filtering Pi contains the following mapping:
0  =  0
s(x1)  =  s(x1)
intcA_in_gga(x1, x2, x3)  =  intcA_in_gga(x1, x2)
intcA_out_gga(x1, x2, x3)  =  intcA_out_gga(x1, x2, x3)
U15_gga(x1, x2, x3)  =  U15_gga(x1, x3)
U17_gga(x1, x2)  =  U17_gga(x2)
intlistcC_in_a(x1)  =  intlistcC_in_a
intlistcC_out_a(x1)  =  intlistcC_out_a(x1)
U18_gga(x1, x2, x3)  =  U18_gga(x1, x3)
U20_gga(x1, x2, x3)  =  U20_gga(x1, x3)
U21_gga(x1, x2, x3, x4)  =  U21_gga(x1, x2, x4)
U22_gga(x1, x2, x3, x4)  =  U22_gga(x1, x2, x4)
intlistcD_in_ga(x1, x2)  =  intlistcD_in_ga(x1)
[]  =  []
intlistcD_out_ga(x1, x2)  =  intlistcD_out_ga(x1, x2)
.(x1, x2)  =  .(x1, x2)
U25_ga(x1, x2, x3, x4)  =  U25_ga(x1, x2, x4)
U23_gga(x1, x2, x3, x4)  =  U23_gga(x1, x2, x4)
intlistcB_in_ga(x1, x2)  =  intlistcB_in_ga(x1)
intlistcB_out_ga(x1, x2)  =  intlistcB_out_ga(x1, x2)
U24_ga(x1, x2, x3, x4)  =  U24_ga(x1, x2, x4)
U19_gga(x1, x2, x3)  =  U19_gga(x1, x3)
U16_gga(x1, x2, x3)  =  U16_gga(x1, x3)
INTLISTD_IN_GA(x1, x2)  =  INTLISTD_IN_GA(x1)

We have to consider all (P,R,Pi)-chains

(10) UsableRulesProof (EQUIVALENT transformation)

For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R.

(11) Obligation:

Pi DP problem:
The TRS P consists of the following rules:

INTLISTD_IN_GA(.(X1, X2), .(s(X1), X3)) → INTLISTD_IN_GA(X2, X3)

R is empty.
The argument filtering Pi contains the following mapping:
s(x1)  =  s(x1)
.(x1, x2)  =  .(x1, x2)
INTLISTD_IN_GA(x1, x2)  =  INTLISTD_IN_GA(x1)

We have to consider all (P,R,Pi)-chains

(12) PiDPToQDPProof (SOUND transformation)

Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi.

(13) Obligation:

Q DP problem:
The TRS P consists of the following rules:

INTLISTD_IN_GA(.(X1, X2)) → INTLISTD_IN_GA(X2)

R is empty.
Q is empty.
We have to consider all (P,Q,R)-chains.

(14) QDPSizeChangeProof (EQUIVALENT transformation)

By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem.

From the DPs we obtained the following set of size-change graphs:

  • INTLISTD_IN_GA(.(X1, X2)) → INTLISTD_IN_GA(X2)
    The graph contains the following edges 1 > 1

(15) YES

(16) Obligation:

Pi DP problem:
The TRS P consists of the following rules:

INTLISTB_IN_GA(.(X1, X2), .(s(X1), X3)) → INTLISTB_IN_GA(X2, X3)

The TRS R consists of the following rules:

intcA_in_gga(0, 0, .(0, [])) → intcA_out_gga(0, 0, .(0, []))
intcA_in_gga(0, s(X1), .(0, X2)) → U15_gga(X1, X2, intcA_in_gga(0, X1, X3))
intcA_in_gga(s(X1), 0, []) → intcA_out_gga(s(X1), 0, [])
intcA_in_gga(s(0), s(0), .(s(0), X1)) → U17_gga(X1, intlistcC_in_a(X1))
intlistcC_in_a([]) → intlistcC_out_a([])
U17_gga(X1, intlistcC_out_a(X1)) → intcA_out_gga(s(0), s(0), .(s(0), X1))
intcA_in_gga(s(0), s(s(X1)), X2) → U18_gga(X1, X2, intcA_in_gga(s(0), s(X1), X3))
intcA_in_gga(s(s(X1)), s(0), X2) → U20_gga(X1, X2, intlistcC_in_a(X2))
U20_gga(X1, X2, intlistcC_out_a(X2)) → intcA_out_gga(s(s(X1)), s(0), X2)
intcA_in_gga(s(s(X1)), s(s(X2)), X3) → U21_gga(X1, X2, X3, intcA_in_gga(X1, X2, X4))
U21_gga(X1, X2, X3, intcA_out_gga(X1, X2, X4)) → U22_gga(X1, X2, X3, intlistcD_in_ga(X4, X5))
intlistcD_in_ga([], []) → intlistcD_out_ga([], [])
intlistcD_in_ga(.(X1, X2), .(s(X1), X3)) → U25_ga(X1, X2, X3, intlistcD_in_ga(X2, X3))
U25_ga(X1, X2, X3, intlistcD_out_ga(X2, X3)) → intlistcD_out_ga(.(X1, X2), .(s(X1), X3))
U22_gga(X1, X2, X3, intlistcD_out_ga(X4, X5)) → U23_gga(X1, X2, X3, intlistcB_in_ga(X5, X3))
intlistcB_in_ga([], []) → intlistcB_out_ga([], [])
intlistcB_in_ga(.(X1, X2), .(s(X1), X3)) → U24_ga(X1, X2, X3, intlistcB_in_ga(X2, X3))
U24_ga(X1, X2, X3, intlistcB_out_ga(X2, X3)) → intlistcB_out_ga(.(X1, X2), .(s(X1), X3))
U23_gga(X1, X2, X3, intlistcB_out_ga(X5, X3)) → intcA_out_gga(s(s(X1)), s(s(X2)), X3)
U18_gga(X1, X2, intcA_out_gga(s(0), s(X1), X3)) → U19_gga(X1, X2, intlistcB_in_ga(.(0, X3), X2))
U19_gga(X1, X2, intlistcB_out_ga(.(0, X3), X2)) → intcA_out_gga(s(0), s(s(X1)), X2)
U15_gga(X1, X2, intcA_out_gga(0, X1, X3)) → U16_gga(X1, X2, intlistcB_in_ga(X3, X2))
U16_gga(X1, X2, intlistcB_out_ga(X3, X2)) → intcA_out_gga(0, s(X1), .(0, X2))

The argument filtering Pi contains the following mapping:
0  =  0
s(x1)  =  s(x1)
intcA_in_gga(x1, x2, x3)  =  intcA_in_gga(x1, x2)
intcA_out_gga(x1, x2, x3)  =  intcA_out_gga(x1, x2, x3)
U15_gga(x1, x2, x3)  =  U15_gga(x1, x3)
U17_gga(x1, x2)  =  U17_gga(x2)
intlistcC_in_a(x1)  =  intlistcC_in_a
intlistcC_out_a(x1)  =  intlistcC_out_a(x1)
U18_gga(x1, x2, x3)  =  U18_gga(x1, x3)
U20_gga(x1, x2, x3)  =  U20_gga(x1, x3)
U21_gga(x1, x2, x3, x4)  =  U21_gga(x1, x2, x4)
U22_gga(x1, x2, x3, x4)  =  U22_gga(x1, x2, x4)
intlistcD_in_ga(x1, x2)  =  intlistcD_in_ga(x1)
[]  =  []
intlistcD_out_ga(x1, x2)  =  intlistcD_out_ga(x1, x2)
.(x1, x2)  =  .(x1, x2)
U25_ga(x1, x2, x3, x4)  =  U25_ga(x1, x2, x4)
U23_gga(x1, x2, x3, x4)  =  U23_gga(x1, x2, x4)
intlistcB_in_ga(x1, x2)  =  intlistcB_in_ga(x1)
intlistcB_out_ga(x1, x2)  =  intlistcB_out_ga(x1, x2)
U24_ga(x1, x2, x3, x4)  =  U24_ga(x1, x2, x4)
U19_gga(x1, x2, x3)  =  U19_gga(x1, x3)
U16_gga(x1, x2, x3)  =  U16_gga(x1, x3)
INTLISTB_IN_GA(x1, x2)  =  INTLISTB_IN_GA(x1)

We have to consider all (P,R,Pi)-chains

(17) UsableRulesProof (EQUIVALENT transformation)

For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R.

(18) Obligation:

Pi DP problem:
The TRS P consists of the following rules:

INTLISTB_IN_GA(.(X1, X2), .(s(X1), X3)) → INTLISTB_IN_GA(X2, X3)

R is empty.
The argument filtering Pi contains the following mapping:
s(x1)  =  s(x1)
.(x1, x2)  =  .(x1, x2)
INTLISTB_IN_GA(x1, x2)  =  INTLISTB_IN_GA(x1)

We have to consider all (P,R,Pi)-chains

(19) PiDPToQDPProof (SOUND transformation)

Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi.

(20) Obligation:

Q DP problem:
The TRS P consists of the following rules:

INTLISTB_IN_GA(.(X1, X2)) → INTLISTB_IN_GA(X2)

R is empty.
Q is empty.
We have to consider all (P,Q,R)-chains.

(21) QDPSizeChangeProof (EQUIVALENT transformation)

By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem.

From the DPs we obtained the following set of size-change graphs:

  • INTLISTB_IN_GA(.(X1, X2)) → INTLISTB_IN_GA(X2)
    The graph contains the following edges 1 > 1

(22) YES

(23) Obligation:

Pi DP problem:
The TRS P consists of the following rules:

INTA_IN_GGA(s(0), s(s(X1)), X2) → INTA_IN_GGA(s(0), s(X1), X3)

The TRS R consists of the following rules:

intcA_in_gga(0, 0, .(0, [])) → intcA_out_gga(0, 0, .(0, []))
intcA_in_gga(0, s(X1), .(0, X2)) → U15_gga(X1, X2, intcA_in_gga(0, X1, X3))
intcA_in_gga(s(X1), 0, []) → intcA_out_gga(s(X1), 0, [])
intcA_in_gga(s(0), s(0), .(s(0), X1)) → U17_gga(X1, intlistcC_in_a(X1))
intlistcC_in_a([]) → intlistcC_out_a([])
U17_gga(X1, intlistcC_out_a(X1)) → intcA_out_gga(s(0), s(0), .(s(0), X1))
intcA_in_gga(s(0), s(s(X1)), X2) → U18_gga(X1, X2, intcA_in_gga(s(0), s(X1), X3))
intcA_in_gga(s(s(X1)), s(0), X2) → U20_gga(X1, X2, intlistcC_in_a(X2))
U20_gga(X1, X2, intlistcC_out_a(X2)) → intcA_out_gga(s(s(X1)), s(0), X2)
intcA_in_gga(s(s(X1)), s(s(X2)), X3) → U21_gga(X1, X2, X3, intcA_in_gga(X1, X2, X4))
U21_gga(X1, X2, X3, intcA_out_gga(X1, X2, X4)) → U22_gga(X1, X2, X3, intlistcD_in_ga(X4, X5))
intlistcD_in_ga([], []) → intlistcD_out_ga([], [])
intlistcD_in_ga(.(X1, X2), .(s(X1), X3)) → U25_ga(X1, X2, X3, intlistcD_in_ga(X2, X3))
U25_ga(X1, X2, X3, intlistcD_out_ga(X2, X3)) → intlistcD_out_ga(.(X1, X2), .(s(X1), X3))
U22_gga(X1, X2, X3, intlistcD_out_ga(X4, X5)) → U23_gga(X1, X2, X3, intlistcB_in_ga(X5, X3))
intlistcB_in_ga([], []) → intlistcB_out_ga([], [])
intlistcB_in_ga(.(X1, X2), .(s(X1), X3)) → U24_ga(X1, X2, X3, intlistcB_in_ga(X2, X3))
U24_ga(X1, X2, X3, intlistcB_out_ga(X2, X3)) → intlistcB_out_ga(.(X1, X2), .(s(X1), X3))
U23_gga(X1, X2, X3, intlistcB_out_ga(X5, X3)) → intcA_out_gga(s(s(X1)), s(s(X2)), X3)
U18_gga(X1, X2, intcA_out_gga(s(0), s(X1), X3)) → U19_gga(X1, X2, intlistcB_in_ga(.(0, X3), X2))
U19_gga(X1, X2, intlistcB_out_ga(.(0, X3), X2)) → intcA_out_gga(s(0), s(s(X1)), X2)
U15_gga(X1, X2, intcA_out_gga(0, X1, X3)) → U16_gga(X1, X2, intlistcB_in_ga(X3, X2))
U16_gga(X1, X2, intlistcB_out_ga(X3, X2)) → intcA_out_gga(0, s(X1), .(0, X2))

The argument filtering Pi contains the following mapping:
0  =  0
s(x1)  =  s(x1)
intcA_in_gga(x1, x2, x3)  =  intcA_in_gga(x1, x2)
intcA_out_gga(x1, x2, x3)  =  intcA_out_gga(x1, x2, x3)
U15_gga(x1, x2, x3)  =  U15_gga(x1, x3)
U17_gga(x1, x2)  =  U17_gga(x2)
intlistcC_in_a(x1)  =  intlistcC_in_a
intlistcC_out_a(x1)  =  intlistcC_out_a(x1)
U18_gga(x1, x2, x3)  =  U18_gga(x1, x3)
U20_gga(x1, x2, x3)  =  U20_gga(x1, x3)
U21_gga(x1, x2, x3, x4)  =  U21_gga(x1, x2, x4)
U22_gga(x1, x2, x3, x4)  =  U22_gga(x1, x2, x4)
intlistcD_in_ga(x1, x2)  =  intlistcD_in_ga(x1)
[]  =  []
intlistcD_out_ga(x1, x2)  =  intlistcD_out_ga(x1, x2)
.(x1, x2)  =  .(x1, x2)
U25_ga(x1, x2, x3, x4)  =  U25_ga(x1, x2, x4)
U23_gga(x1, x2, x3, x4)  =  U23_gga(x1, x2, x4)
intlistcB_in_ga(x1, x2)  =  intlistcB_in_ga(x1)
intlistcB_out_ga(x1, x2)  =  intlistcB_out_ga(x1, x2)
U24_ga(x1, x2, x3, x4)  =  U24_ga(x1, x2, x4)
U19_gga(x1, x2, x3)  =  U19_gga(x1, x3)
U16_gga(x1, x2, x3)  =  U16_gga(x1, x3)
INTA_IN_GGA(x1, x2, x3)  =  INTA_IN_GGA(x1, x2)

We have to consider all (P,R,Pi)-chains

(24) UsableRulesProof (EQUIVALENT transformation)

For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R.

(25) Obligation:

Pi DP problem:
The TRS P consists of the following rules:

INTA_IN_GGA(s(0), s(s(X1)), X2) → INTA_IN_GGA(s(0), s(X1), X3)

R is empty.
The argument filtering Pi contains the following mapping:
0  =  0
s(x1)  =  s(x1)
INTA_IN_GGA(x1, x2, x3)  =  INTA_IN_GGA(x1, x2)

We have to consider all (P,R,Pi)-chains

(26) PiDPToQDPProof (SOUND transformation)

Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi.

(27) Obligation:

Q DP problem:
The TRS P consists of the following rules:

INTA_IN_GGA(s(0), s(s(X1))) → INTA_IN_GGA(s(0), s(X1))

R is empty.
Q is empty.
We have to consider all (P,Q,R)-chains.

(28) QDPSizeChangeProof (EQUIVALENT transformation)

By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem.

From the DPs we obtained the following set of size-change graphs:

  • INTA_IN_GGA(s(0), s(s(X1))) → INTA_IN_GGA(s(0), s(X1))
    The graph contains the following edges 1 >= 1, 2 > 2

(29) YES

(30) Obligation:

Pi DP problem:
The TRS P consists of the following rules:

INTA_IN_GGA(0, s(X1), .(0, X2)) → INTA_IN_GGA(0, X1, X3)

The TRS R consists of the following rules:

intcA_in_gga(0, 0, .(0, [])) → intcA_out_gga(0, 0, .(0, []))
intcA_in_gga(0, s(X1), .(0, X2)) → U15_gga(X1, X2, intcA_in_gga(0, X1, X3))
intcA_in_gga(s(X1), 0, []) → intcA_out_gga(s(X1), 0, [])
intcA_in_gga(s(0), s(0), .(s(0), X1)) → U17_gga(X1, intlistcC_in_a(X1))
intlistcC_in_a([]) → intlistcC_out_a([])
U17_gga(X1, intlistcC_out_a(X1)) → intcA_out_gga(s(0), s(0), .(s(0), X1))
intcA_in_gga(s(0), s(s(X1)), X2) → U18_gga(X1, X2, intcA_in_gga(s(0), s(X1), X3))
intcA_in_gga(s(s(X1)), s(0), X2) → U20_gga(X1, X2, intlistcC_in_a(X2))
U20_gga(X1, X2, intlistcC_out_a(X2)) → intcA_out_gga(s(s(X1)), s(0), X2)
intcA_in_gga(s(s(X1)), s(s(X2)), X3) → U21_gga(X1, X2, X3, intcA_in_gga(X1, X2, X4))
U21_gga(X1, X2, X3, intcA_out_gga(X1, X2, X4)) → U22_gga(X1, X2, X3, intlistcD_in_ga(X4, X5))
intlistcD_in_ga([], []) → intlistcD_out_ga([], [])
intlistcD_in_ga(.(X1, X2), .(s(X1), X3)) → U25_ga(X1, X2, X3, intlistcD_in_ga(X2, X3))
U25_ga(X1, X2, X3, intlistcD_out_ga(X2, X3)) → intlistcD_out_ga(.(X1, X2), .(s(X1), X3))
U22_gga(X1, X2, X3, intlistcD_out_ga(X4, X5)) → U23_gga(X1, X2, X3, intlistcB_in_ga(X5, X3))
intlistcB_in_ga([], []) → intlistcB_out_ga([], [])
intlistcB_in_ga(.(X1, X2), .(s(X1), X3)) → U24_ga(X1, X2, X3, intlistcB_in_ga(X2, X3))
U24_ga(X1, X2, X3, intlistcB_out_ga(X2, X3)) → intlistcB_out_ga(.(X1, X2), .(s(X1), X3))
U23_gga(X1, X2, X3, intlistcB_out_ga(X5, X3)) → intcA_out_gga(s(s(X1)), s(s(X2)), X3)
U18_gga(X1, X2, intcA_out_gga(s(0), s(X1), X3)) → U19_gga(X1, X2, intlistcB_in_ga(.(0, X3), X2))
U19_gga(X1, X2, intlistcB_out_ga(.(0, X3), X2)) → intcA_out_gga(s(0), s(s(X1)), X2)
U15_gga(X1, X2, intcA_out_gga(0, X1, X3)) → U16_gga(X1, X2, intlistcB_in_ga(X3, X2))
U16_gga(X1, X2, intlistcB_out_ga(X3, X2)) → intcA_out_gga(0, s(X1), .(0, X2))

The argument filtering Pi contains the following mapping:
0  =  0
s(x1)  =  s(x1)
intcA_in_gga(x1, x2, x3)  =  intcA_in_gga(x1, x2)
intcA_out_gga(x1, x2, x3)  =  intcA_out_gga(x1, x2, x3)
U15_gga(x1, x2, x3)  =  U15_gga(x1, x3)
U17_gga(x1, x2)  =  U17_gga(x2)
intlistcC_in_a(x1)  =  intlistcC_in_a
intlistcC_out_a(x1)  =  intlistcC_out_a(x1)
U18_gga(x1, x2, x3)  =  U18_gga(x1, x3)
U20_gga(x1, x2, x3)  =  U20_gga(x1, x3)
U21_gga(x1, x2, x3, x4)  =  U21_gga(x1, x2, x4)
U22_gga(x1, x2, x3, x4)  =  U22_gga(x1, x2, x4)
intlistcD_in_ga(x1, x2)  =  intlistcD_in_ga(x1)
[]  =  []
intlistcD_out_ga(x1, x2)  =  intlistcD_out_ga(x1, x2)
.(x1, x2)  =  .(x1, x2)
U25_ga(x1, x2, x3, x4)  =  U25_ga(x1, x2, x4)
U23_gga(x1, x2, x3, x4)  =  U23_gga(x1, x2, x4)
intlistcB_in_ga(x1, x2)  =  intlistcB_in_ga(x1)
intlistcB_out_ga(x1, x2)  =  intlistcB_out_ga(x1, x2)
U24_ga(x1, x2, x3, x4)  =  U24_ga(x1, x2, x4)
U19_gga(x1, x2, x3)  =  U19_gga(x1, x3)
U16_gga(x1, x2, x3)  =  U16_gga(x1, x3)
INTA_IN_GGA(x1, x2, x3)  =  INTA_IN_GGA(x1, x2)

We have to consider all (P,R,Pi)-chains

(31) UsableRulesProof (EQUIVALENT transformation)

For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R.

(32) Obligation:

Pi DP problem:
The TRS P consists of the following rules:

INTA_IN_GGA(0, s(X1), .(0, X2)) → INTA_IN_GGA(0, X1, X3)

R is empty.
The argument filtering Pi contains the following mapping:
0  =  0
s(x1)  =  s(x1)
.(x1, x2)  =  .(x1, x2)
INTA_IN_GGA(x1, x2, x3)  =  INTA_IN_GGA(x1, x2)

We have to consider all (P,R,Pi)-chains

(33) PiDPToQDPProof (SOUND transformation)

Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi.

(34) Obligation:

Q DP problem:
The TRS P consists of the following rules:

INTA_IN_GGA(0, s(X1)) → INTA_IN_GGA(0, X1)

R is empty.
Q is empty.
We have to consider all (P,Q,R)-chains.

(35) QDPSizeChangeProof (EQUIVALENT transformation)

By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem.

From the DPs we obtained the following set of size-change graphs:

  • INTA_IN_GGA(0, s(X1)) → INTA_IN_GGA(0, X1)
    The graph contains the following edges 1 >= 1, 2 > 2

(36) YES

(37) Obligation:

Pi DP problem:
The TRS P consists of the following rules:

INTA_IN_GGA(s(s(X1)), s(s(X2)), X3) → INTA_IN_GGA(X1, X2, X4)

The TRS R consists of the following rules:

intcA_in_gga(0, 0, .(0, [])) → intcA_out_gga(0, 0, .(0, []))
intcA_in_gga(0, s(X1), .(0, X2)) → U15_gga(X1, X2, intcA_in_gga(0, X1, X3))
intcA_in_gga(s(X1), 0, []) → intcA_out_gga(s(X1), 0, [])
intcA_in_gga(s(0), s(0), .(s(0), X1)) → U17_gga(X1, intlistcC_in_a(X1))
intlistcC_in_a([]) → intlistcC_out_a([])
U17_gga(X1, intlistcC_out_a(X1)) → intcA_out_gga(s(0), s(0), .(s(0), X1))
intcA_in_gga(s(0), s(s(X1)), X2) → U18_gga(X1, X2, intcA_in_gga(s(0), s(X1), X3))
intcA_in_gga(s(s(X1)), s(0), X2) → U20_gga(X1, X2, intlistcC_in_a(X2))
U20_gga(X1, X2, intlistcC_out_a(X2)) → intcA_out_gga(s(s(X1)), s(0), X2)
intcA_in_gga(s(s(X1)), s(s(X2)), X3) → U21_gga(X1, X2, X3, intcA_in_gga(X1, X2, X4))
U21_gga(X1, X2, X3, intcA_out_gga(X1, X2, X4)) → U22_gga(X1, X2, X3, intlistcD_in_ga(X4, X5))
intlistcD_in_ga([], []) → intlistcD_out_ga([], [])
intlistcD_in_ga(.(X1, X2), .(s(X1), X3)) → U25_ga(X1, X2, X3, intlistcD_in_ga(X2, X3))
U25_ga(X1, X2, X3, intlistcD_out_ga(X2, X3)) → intlistcD_out_ga(.(X1, X2), .(s(X1), X3))
U22_gga(X1, X2, X3, intlistcD_out_ga(X4, X5)) → U23_gga(X1, X2, X3, intlistcB_in_ga(X5, X3))
intlistcB_in_ga([], []) → intlistcB_out_ga([], [])
intlistcB_in_ga(.(X1, X2), .(s(X1), X3)) → U24_ga(X1, X2, X3, intlistcB_in_ga(X2, X3))
U24_ga(X1, X2, X3, intlistcB_out_ga(X2, X3)) → intlistcB_out_ga(.(X1, X2), .(s(X1), X3))
U23_gga(X1, X2, X3, intlistcB_out_ga(X5, X3)) → intcA_out_gga(s(s(X1)), s(s(X2)), X3)
U18_gga(X1, X2, intcA_out_gga(s(0), s(X1), X3)) → U19_gga(X1, X2, intlistcB_in_ga(.(0, X3), X2))
U19_gga(X1, X2, intlistcB_out_ga(.(0, X3), X2)) → intcA_out_gga(s(0), s(s(X1)), X2)
U15_gga(X1, X2, intcA_out_gga(0, X1, X3)) → U16_gga(X1, X2, intlistcB_in_ga(X3, X2))
U16_gga(X1, X2, intlistcB_out_ga(X3, X2)) → intcA_out_gga(0, s(X1), .(0, X2))

The argument filtering Pi contains the following mapping:
0  =  0
s(x1)  =  s(x1)
intcA_in_gga(x1, x2, x3)  =  intcA_in_gga(x1, x2)
intcA_out_gga(x1, x2, x3)  =  intcA_out_gga(x1, x2, x3)
U15_gga(x1, x2, x3)  =  U15_gga(x1, x3)
U17_gga(x1, x2)  =  U17_gga(x2)
intlistcC_in_a(x1)  =  intlistcC_in_a
intlistcC_out_a(x1)  =  intlistcC_out_a(x1)
U18_gga(x1, x2, x3)  =  U18_gga(x1, x3)
U20_gga(x1, x2, x3)  =  U20_gga(x1, x3)
U21_gga(x1, x2, x3, x4)  =  U21_gga(x1, x2, x4)
U22_gga(x1, x2, x3, x4)  =  U22_gga(x1, x2, x4)
intlistcD_in_ga(x1, x2)  =  intlistcD_in_ga(x1)
[]  =  []
intlistcD_out_ga(x1, x2)  =  intlistcD_out_ga(x1, x2)
.(x1, x2)  =  .(x1, x2)
U25_ga(x1, x2, x3, x4)  =  U25_ga(x1, x2, x4)
U23_gga(x1, x2, x3, x4)  =  U23_gga(x1, x2, x4)
intlistcB_in_ga(x1, x2)  =  intlistcB_in_ga(x1)
intlistcB_out_ga(x1, x2)  =  intlistcB_out_ga(x1, x2)
U24_ga(x1, x2, x3, x4)  =  U24_ga(x1, x2, x4)
U19_gga(x1, x2, x3)  =  U19_gga(x1, x3)
U16_gga(x1, x2, x3)  =  U16_gga(x1, x3)
INTA_IN_GGA(x1, x2, x3)  =  INTA_IN_GGA(x1, x2)

We have to consider all (P,R,Pi)-chains

(38) UsableRulesProof (EQUIVALENT transformation)

For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R.

(39) Obligation:

Pi DP problem:
The TRS P consists of the following rules:

INTA_IN_GGA(s(s(X1)), s(s(X2)), X3) → INTA_IN_GGA(X1, X2, X4)

R is empty.
The argument filtering Pi contains the following mapping:
s(x1)  =  s(x1)
INTA_IN_GGA(x1, x2, x3)  =  INTA_IN_GGA(x1, x2)

We have to consider all (P,R,Pi)-chains

(40) PiDPToQDPProof (SOUND transformation)

Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi.

(41) Obligation:

Q DP problem:
The TRS P consists of the following rules:

INTA_IN_GGA(s(s(X1)), s(s(X2))) → INTA_IN_GGA(X1, X2)

R is empty.
Q is empty.
We have to consider all (P,Q,R)-chains.

(42) QDPSizeChangeProof (EQUIVALENT transformation)

By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem.

From the DPs we obtained the following set of size-change graphs:

  • INTA_IN_GGA(s(s(X1)), s(s(X2))) → INTA_IN_GGA(X1, X2)
    The graph contains the following edges 1 > 1, 2 > 2

(43) YES